package alsc

import (
	"sync"
)

// PhysicalCardOpenInfo 结构体
type PhysicalCardOpenInfo struct {
	// 绑定操作人ID
	BindOperatorId string `json:"bind_operator_id,omitempty" xml:"bind_operator_id,omitempty"`
	// 绑定门店ID
	BindShopId string `json:"bind_shop_id,omitempty" xml:"bind_shop_id,omitempty"`
	// 绑定时间
	BindTime string `json:"bind_time,omitempty" xml:"bind_time,omitempty"`
	// 卡实例ID
	CardId string `json:"card_id,omitempty" xml:"card_id,omitempty"`
	// 卡模板ID
	CardTemplateId string `json:"card_template_id,omitempty" xml:"card_template_id,omitempty"`
	// 卡类型
	CardType string `json:"card_type,omitempty" xml:"card_type,omitempty"`
	// 创建人
	CreateBy string `json:"create_by,omitempty" xml:"create_by,omitempty"`
	// 创建时间
	GmtCreate string `json:"gmt_create,omitempty" xml:"gmt_create,omitempty"`
	// 修改时间
	GmtModified string `json:"gmt_modified,omitempty" xml:"gmt_modified,omitempty"`
	// 操作员id
	OperatorId string `json:"operator_id,omitempty" xml:"operator_id,omitempty"`
	// 物理卡号
	PhysicalCardId string `json:"physical_card_id,omitempty" xml:"physical_card_id,omitempty"`
	// 会员计划id
	PlanId string `json:"plan_id,omitempty" xml:"plan_id,omitempty"`
	// 发行记录ID
	PublishId string `json:"publish_id,omitempty" xml:"publish_id,omitempty"`
	// WAIT_MAKE(&#34;WAIT_MAKE&#34;, &#34;未制卡&#34;),      *      * 未出售           WAIT_SELL(&#34;WAIT_SELL&#34;, &#34;未出售&#34;),      *      * 已出售           SOLD(&#34;SOLD&#34;, &#34;已出售&#34;),      *      * 已作废           INVALID(&#34;INVALID&#34;, &#34;已作废&#34;);
	Status string `json:"status,omitempty" xml:"status,omitempty"`
	// 修改人
	UpdateBy string `json:"update_by,omitempty" xml:"update_by,omitempty"`
	// 卡方案名称
	CardTemplateName string `json:"card_template_name,omitempty" xml:"card_template_name,omitempty"`
	// 扩展信息
	ExtInfo *Extinfo `json:"ext_info,omitempty" xml:"ext_info,omitempty"`
	// 逻辑删除
	Deleted bool `json:"deleted,omitempty" xml:"deleted,omitempty"`
}

var poolPhysicalCardOpenInfo = sync.Pool{
	New: func() any {
		return new(PhysicalCardOpenInfo)
	},
}

// GetPhysicalCardOpenInfo() 从对象池中获取PhysicalCardOpenInfo
func GetPhysicalCardOpenInfo() *PhysicalCardOpenInfo {
	return poolPhysicalCardOpenInfo.Get().(*PhysicalCardOpenInfo)
}

// ReleasePhysicalCardOpenInfo 释放PhysicalCardOpenInfo
func ReleasePhysicalCardOpenInfo(v *PhysicalCardOpenInfo) {
	v.BindOperatorId = ""
	v.BindShopId = ""
	v.BindTime = ""
	v.CardId = ""
	v.CardTemplateId = ""
	v.CardType = ""
	v.CreateBy = ""
	v.GmtCreate = ""
	v.GmtModified = ""
	v.OperatorId = ""
	v.PhysicalCardId = ""
	v.PlanId = ""
	v.PublishId = ""
	v.Status = ""
	v.UpdateBy = ""
	v.CardTemplateName = ""
	v.ExtInfo = nil
	v.Deleted = false
	poolPhysicalCardOpenInfo.Put(v)
}
